from PublicReference.base import *

class 职业主动技能(主动技能):
    技能施放时间 = 0.0
    脱手 = 1
    data0 = []
    data1 = []
    data2 = []
    data3 = []

    攻击次数 = 1
    攻击次数2 = 0
    攻击次数3 = 0
    攻击次数4 = 0

    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * self.攻击次数2
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        return 等效倍率 * (1 + self.TP成长 * self.TP等级) * self.倍率

    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    计算CD = 0

    def 等效CD(self, 武器类型, 输出类型, 恢复速度=1):
        if self.计算CD != 0:
            return round(self.计算CD, 1)
        return round(self.CD / (1 if 恢复速度 == 0 else self.恢复) * 武器冷却惩罚(武器类型, self.武器惩罚类型, self.版本), 1)


class 技能0(职业主动技能):
    名称 = '挑击'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 20
    基础等级 = 10
    # 基础 = 88.9
    # 成长 = 11.1
    CD = 2.0
    TP成长 = 0.08
    TP上限 = 5
    # 物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 105, 117, 128, 140, 151, 163, 175, 187, 198, 210, 222, 233, 245, 256, 268, 279, 292, 303, 315, 327, 338, 350, 361, 373, 384, 396, 408, 420, 432, 443, 455, 466, 478, 489, 501, 512, 525, 537, 548, 560, 571, 583, 594, 606, 617, 629, 642, 653, 665, 676, 688, 699, 711, 722, 734, 746, 758, 770, 781, 793, 804, 816, 827, 839, 851, 862, 875, 886, 898, 909]]


class 技能1(职业主动技能):
    名称 = '暗影斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 1
    等级上限 = 60
    基础等级 = 50
    # 基础 = 577.673
    # 成长 = 65.327
    CD = 3.1
    TP成长 = 0.1
    TP上限 = 5
    # 魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 675, 744, 812, 881, 948, 1019, 1088, 1155, 1223, 1293, 1360, 1430, 1498, 1566, 1635, 1704, 1771, 1841, 1910, 1977, 2046, 2116, 2183, 2251, 2321, 2391, 2458, 2526, 2595, 2665, 2733, 2800, 2870, 2937, 3008, 3075, 3144, 3212, 3280, 3351, 3420, 3487, 3554, 3625, 3692, 3761, 3829, 3899, 3968, 4036, 4104, 4172, 4240, 4309, 4380, 4447, 4514, 4585, 4654, 4720, 4790, 4856, 4927, 4995, 5063, 5131, 5200, 5270, 5340, 5406]]


class 技能2(职业主动技能):
    名称 = '黑暗十字斩'
    类型 = '物理'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    # 基础 = 125.776
    # 成长 = 14.224
    # 攻击次数 = 2
    # 基础2 = 552.490
    # 成长2 = 52.531
    # 攻击次数3 = 1
    # 斩击物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 147, 162, 176, 191, 207, 222, 236, 251, 266, 281, 296, 311, 326, 341, 356, 371, 385, 400, 416, 431, 445, 460, 476, 490, 505, 520, 536, 550, 565, 580, 594, 610, 625, 639, 654, 670, 685, 699, 714, 729, 744, 759, 774, 789, 804, 819, 834, 848, 863, 879, 894, 908, 923, 939, 953, 968, 983, 998, 1013, 1028, 1043, 1057, 1073, 1088, 1103, 1117, 1132, 1148, 1162, 1177]]
    攻击次数 = 2
    # 黑暗十字物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 646, 712, 777, 843, 909, 974, 1041, 1106, 1172, 1237, 1303, 1368, 1433, 1498, 1565, 1630, 1696, 1761, 1827, 1892, 1958, 2023, 2090, 2155, 2221, 2287, 2352, 2418, 2483, 2549, 2615, 2681, 2746, 2812, 2877, 2943, 3008, 3074, 3140, 3206, 3271, 3337, 3402, 3468, 3534, 3599, 3666, 3731, 3797, 3862, 3928, 3993, 4059, 4124, 4191, 4256, 4322, 4387, 4453, 4518, 4583, 4648, 4715, 4781, 4846, 4912, 4977, 5043, 5108, 5174]]
    攻击次数2 = 1
    CD = 3.0
    TP成长 = 0.08
    TP上限 = 5


class 技能3(职业主动技能):
    名称 = '暗影·波动剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    # 基础 = 628.98
    # 成长 = 71.020
    # 魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 735, 809, 884, 958, 1033, 1107, 1182, 1256, 1331, 1405, 1481, 1554, 1630, 1703, 1779, 1852, 1928, 2001, 2077, 2153, 2226, 2302, 2375, 2451, 2524, 2600, 2673, 2749, 2822, 2898, 2972, 3047, 3121, 3196, 3270, 3345, 3419, 3494, 3568, 3644, 3717, 3793, 3868, 3942, 4017, 4091, 4166, 4240, 4316, 4389, 4465, 4538, 4614, 4687, 4763, 4836, 4912, 4985, 5061, 5135, 5210, 5284, 5359, 5433, 5508, 5582, 5657, 5733, 5807, 5882]]
    CD = 3.1
    TP成长 = 0.08
    TP上限 = 5


class 技能4(职业主动技能):
    名称 = '旋涡斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    基础 = 622
    成长 = 71
    基础2 = 422
    成长2 = 47.5
    攻击次数3 = 3
    CD = 8
    TP成长 = 0
    TP上限 = 3

    # 上斩魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 287, 316, 344, 374, 403, 432, 461, 490, 520, 548, 578, 607, 636, 665, 694, 723, 753, 781, 811, 840, 868, 898, 927, 957, 985, 1014, 1044, 1073, 1101, 1131, 1160, 1189, 1218, 1247, 1277, 1305, 1335, 1364, 1393, 1422, 1451, 1481, 1509, 1538, 1568, 1597, 1625, 1655, 1684, 1714, 1742, 1771, 1801, 1830, 1859, 1888, 1917, 1946, 1975, 2004, 2034, 2062, 2092, 2121, 2150, 2179, 2208, 2238, 2266, 2295]]
    攻击次数 = 1
    # 下斩魔法攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 441, 486, 530, 575, 621, 665, 710, 755, 799, 844, 889, 933, 979, 1024, 1068, 1113, 1158, 1202, 1247, 1293, 1337, 1382, 1427, 1471, 1516, 1561, 1605, 1651, 1696, 1740, 1785, 1830, 1874, 1919, 1964, 2009, 2054, 2098, 2143, 2188, 2232, 2277, 2323, 2367, 2412, 2457, 2501, 2546, 2591, 2636, 2681, 2726, 2770, 2815, 2860, 2904, 2949, 2995, 3039, 3084, 3129, 3173, 3218, 3263, 3308, 3353, 3398, 3442, 3487, 3532]]
    攻击次数2 = 3
    # 暗黑波动魔法攻击力：<data2>%
    data2 = [int(x*1.05) for x in [0, 492, 542, 592, 642, 693, 742, 792, 842, 891, 943, 992, 1043, 1092, 1142, 1193, 1242, 1293, 1342, 1392, 1443, 1492, 1542, 1593, 1643, 1693, 1742, 1792, 1843, 1893, 1943, 1992, 2043, 2093, 2143, 2192, 2243, 2293, 2343, 2393, 2442, 2493, 2543, 2592, 2643, 2692, 2744, 2793, 2843, 2893, 2942, 2994, 3043, 3093, 3143, 3193, 3243, 3293, 3343, 3393, 3444, 3493, 3543, 3593, 3644, 3694, 3743, 3793, 3843, 3893, 3944]]

    # TP影响第二段攻击次数
    def 等效百分比(self, 武器类型):
        等效倍率 = 0.0
        if len(self.data0) >= self.等级 and len(self.data0) > 0:
            等效倍率 += self.data0[self.等级] * self.攻击次数
        if len(self.data1) >= self.等级 and len(self.data1) > 0:
            等效倍率 += self.data1[self.等级] * (self.攻击次数2+self.TP等级)
        if len(self.data2) >= self.等级 and len(self.data2) > 0:
            等效倍率 += self.data2[self.等级] * self.攻击次数3
        if len(self.data3) >= self.等级 and len(self.data3) > 0:
            等效倍率 += self.data3[self.等级] * self.攻击次数4
        return 等效倍率 * self.倍率

    # def 等效百分比(self, 武器类型):
    #     if self.等级 == 0:
    #         return 0
    #     else:
    #         return int((self.攻击次数 * (self.基础 + self.成长 * self.等级) + (self.攻击次数3+self.TP等级) * (self.基础2 + self.成长2 * self.等级))* self.倍率)


class 技能5(职业主动技能):
    名称 = '滑斩'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 60
    基础等级 = 50
    # 基础 = 749.347
    # 成长 = 84.653
    # 物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 876, 964, 1052, 1142, 1231, 1319, 1409, 1497, 1586, 1676, 1764, 1852, 1943, 2031, 2119, 2209, 2297, 2386, 2476, 2564, 2652, 2743, 2831, 2919, 3009, 3098, 3186, 3276, 3364, 3452, 3543, 3631, 3719, 3809, 3898, 3986, 4076, 4164, 4253, 4343, 4431, 4519, 4610, 4698, 4786, 4876, 4964, 5053, 5143, 5231, 5319, 5410, 5498, 5588, 5676, 5765, 5855, 5943, 6031, 6122, 6210, 6298, 6388, 6476, 6565, 6655, 6743, 6831, 6922, 7010]]
    CD = 3.0


class 技能6(职业主动技能):
    名称 = '跃斩'
    类型 = '物理'
    所在等级 = 1
    等级上限 = 60
    基础等级 = 50
    # 物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 654, 720, 788, 854, 920, 986, 1052, 1118, 1184, 1251, 1319, 1386, 1452, 1518, 1584, 1651, 1717, 1785, 1851, 1917, 1983, 2050, 2116, 2182, 2248, 2315, 2381, 2448, 2516, 2582, 2648, 2714, 2781, 2848, 2914, 2980, 3046, 3112, 3178, 3245, 3311, 3379, 3445, 3511, 3577, 3644, 3711, 3779, 3845, 3911, 3977, 4044, 4110, 4176, 4242, 4308, 4375, 4442, 4508, 4574, 4640, 4706, 4772, 4842, 4908, 4974, 5040, 5106, 5172, 5238]]
    # 装备钝器时， 冲击波物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 520, 575, 630, 686, 740, 796, 851, 906, 961, 1016, 1071, 1127, 1181, 1237, 1292, 1348, 1402, 1457, 1514, 1568, 1622, 1679, 1733, 1788, 1845, 1898, 1953, 2010, 2065, 2119, 2176, 2230, 2284, 2340, 2396, 2450, 2506, 2561, 2618, 2671, 2727, 2784, 2837, 2892, 2948, 3002, 3058, 3114, 3168, 3222, 3278, 3333, 3388, 3443, 3499, 3555, 3610, 3666, 3720, 3776, 3830, 3886, 3941, 3996, 4051, 4107, 4161, 4217, 4271, 4327]]
    攻击次数2 = 0
    CD = 3.0
    # 钝器冲击波

    def 等效百分比(self, 武器类型):
        if 武器类型 == '钝器':
            self.攻击次数2 = 1
        return super().等效百分比(武器类型)
        # if self.等级 == 0:
        #     return 0
        # else:
        #     if 武器类型 != '钝器':
        #         return self.基础 + self.成长 * self.等级
        #     else:
        #         return (self.基础 + self.成长 * self.等级) + (442.269 + 52.531 * self.等级)


class 技能7(职业主动技能):
    名称 = '跃地斩'
    类型 = '物理'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    # 基础 = 320.429
    # 成长 = 34.571
    # 物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 373, 411, 448, 486, 524, 562, 600, 637, 675, 713, 751, 789, 826, 864, 903, 941, 979, 1016, 1054, 1092, 1130, 1168, 1205, 1243, 1281, 1319, 1357, 1394, 1432, 1470, 1508, 1546, 1583, 1621, 1659, 1698, 1736, 1773, 1811, 1849, 1887, 1925, 1962, 2000, 2038, 2076, 2114, 2151, 2189, 2227, 2265, 2303, 2340, 2378, 2416, 2455, 2493, 2531, 2568, 2606, 2644, 2682, 2720, 2757, 2795, 2833, 2871, 2909, 2946, 2984]]
    攻击次数 = 4
    CD = 4.0
    TP成长 = 0.08
    TP上限 = 5


class 技能8(职业主动技能):
    名称 = '冥光斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    # 基础 = 435.787
    # 成长 = 49.213
    # 魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 509, 561, 612, 664, 716, 768, 819, 870, 922, 974, 1026, 1077, 1129, 1180, 1233, 1284, 1336, 1387, 1439, 1491, 1544, 1594, 1645, 1697, 1749, 1802, 1852, 1905, 1955, 2008, 2060, 2111, 2163, 2213, 2267, 2318, 2369, 2421, 2472, 2525, 2577, 2628, 2680, 2732, 2784, 2835, 2886, 2938, 2990, 3042, 3093, 3145, 3196, 3249, 3300, 3352, 3403, 3455, 3507, 3558, 3610, 3661, 3713, 3765, 3817, 3868, 3920, 3971, 4024, 4075]]
    攻击次数 = 2
    CD = 10.5
    TP成长 = 0.10
    TP上限 = 5


class 技能9(职业主动技能):
    名称 = '瞬影斩'
    类型 = '物理'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 基础 = 1299.2
    # 成长 = 146.8
    # 物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 1518, 1673, 1827, 1981, 2136, 2289, 2443, 2598, 2752, 2906, 3060, 3214, 3368, 3523, 3677, 3830, 3985, 4139, 4293, 4448, 4601, 4755, 4910, 5064, 5219, 5372, 5526, 5681, 5835, 5989, 6143, 6297, 6451, 6606, 6760, 6913, 7068, 7222, 7376, 7531, 7684, 7838, 7993, 8147, 8301, 8455, 8609, 8763, 8918, 9072, 9225, 9380, 9534, 9688, 9843, 9996, 10150, 10305, 10459, 10613, 10767, 10921, 11075, 11230, 11383, 11537, 11692, 11846, 12000, 12154]]
    攻击次数 = 2
    TP成长 = 0.1
    TP上限 = 5
    CD = 5


class 技能10(职业主动技能):
    名称 = '暗月斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 5
    等级上限 = 60
    基础等级 = 50
    # 基础 = 395.347
    # 成长 = 44.653
    # 基础2 = 427.633
    # 成长2 = 48.367
    # 攻击次数3 = 1
    # 月形斩击魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 462, 508, 557, 605, 649, 695, 743, 792, 836, 884, 930, 979, 1023, 1071, 1117, 1163, 1214, 1258, 1306, 1352, 1401, 1447, 1493, 1539, 1586, 1634, 1682, 1730, 1775, 1821, 1869, 1917, 1961, 2010, 2056, 2100, 2148, 2197, 2245, 2291, 2335, 2384, 2430, 2476, 2524, 2570, 2617, 2665, 2713, 2759, 2808, 2852, 2902, 2946, 2995, 3043, 3087, 3133, 3182]]
    # 单手上斩魔法攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 500, 550, 601, 653, 704, 754, 804, 857, 907, 958, 1010, 1058, 1109, 1159, 1210, 1264, 1313, 1363, 1415, 1466, 1516, 1565, 1617, 1667, 1720, 1772, 1821, 1871, 1922, 1974, 2024, 2073, 2127, 2174, 2228, 2279, 2327, 2379, 2430, 2480, 2533, 2581, 2633, 2684, 2736, 2787, 2837, 2885, 2938, 2988, 3039, 3091, 3142, 3194, 3247, 3295, 3345, 3396, 3448]]
    攻击次数2 = 1
    CD = 4.2
    TP成长 = 0.08
    TP上限 = 5


class 技能11(职业主动技能):
    名称 = '暗影三击剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 32
    # 基础 = 1822.806
    # 成长 = 346.194
    # 刺击下段魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 569, 660, 751, 842, 933, 1024, 1115, 1205, 1297, 1387, 1478, 1569, 1660, 1750, 1842, 1933, 2023, 2115, 2205, 2296, 2387, 2478, 2568, 2660, 2751, 2841, 2933, 3023, 3114, 3205, 3296, 3386, 3478, 3568, 3659, 3751, 3841, 3932, 4023, 4114, 4204, 4296, 4386, 4477, 4568, 4659, 4750, 4841, 4932, 5022, 5114, 5204, 5295, 5385, 5477, 5567, 5658, 5750, 5840, 5931, 6022, 6113, 6203, 6295, 6385, 6476, 6567, 6658, 6749, 6840]]
    # 刺击上段魔法攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 569, 660, 751, 842, 933, 1024, 1115, 1205, 1297, 1387, 1478, 1569, 1660, 1750, 1842, 1933, 2023, 2115, 2205, 2296, 2387, 2478, 2568, 2660, 2751, 2841, 2933, 3023, 3114, 3205, 3296, 3386, 3478, 3568, 3659, 3751, 3841, 3932, 4023, 4114, 4204, 4296, 4386, 4477, 4568, 4659, 4750, 4841, 4932, 5022, 5114, 5204, 5295, 5385, 5477, 5567, 5658, 5750, 5840, 5931, 6022, 6113, 6203, 6295, 6385, 6476, 6567, 6658, 6749, 6840]]
    攻击次数2 = 1
    # 刺击中段魔法攻击力：<data2>%
    data2 = [int(x*1.05) for x in [0, 1139, 1321, 1503, 1685, 1867, 2049, 2230, 2412, 2594, 2775, 2957, 3138, 3320, 3502, 3684, 3866, 4048, 4229, 4411, 4593, 4774, 4956, 5138, 5319, 5502, 5684, 5865, 6047, 6229, 6410, 6592, 6774, 6955, 7137, 7319, 7501, 7683, 7865, 8046, 8228, 8409, 8591, 8773, 8954, 9136, 9318, 9500, 9682, 9864, 10045, 10227, 10409, 10590, 10772, 10954, 11135, 11317, 11500, 11681, 11863, 12045, 12226, 12408, 12590, 12771, 12953, 13134, 13317, 13499, 13680]]
    攻击次数3 = 1
    CD = 8.4


class 技能12(职业主动技能):
    名称 = '暗劲爆发'
    类型 = '物理'
    所在等级 = 15
    等级上限 = 60
    基础等级 = 46
    # 基础 = 353.044
    # 成长 = 39.956
    # 基础2 = 389.933
    # 成长2 = 44.067
    # 攻击次数3 = 8
    # 冲击波物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 413, 455, 497, 539, 581, 623, 665, 707, 749, 791, 833, 875, 917, 959, 1001, 1043, 1085, 1127, 1169, 1210, 1252, 1294, 1336, 1378, 1420, 1462, 1504, 1546, 1588, 1630, 1672, 1714, 1756, 1798, 1840, 1882, 1924, 1966, 2008, 2050, 2092, 2133, 2175, 2217, 2259, 2301, 2343, 2385, 2427, 2469, 2511, 2553, 2595, 2637, 2679, 2721, 2763, 2805, 2847, 2889, 2931, 2973, 3015, 3056, 3098, 3140, 3182, 3224, 3266, 3308]]
    # 爆炸物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 456, 502, 548, 594, 641, 687, 733, 779, 825, 872, 919, 965, 1011, 1057, 1104, 1150, 1196, 1242, 1288, 1335, 1381, 1427, 1473, 1519, 1566, 1613, 1659, 1705, 1751, 1798, 1844, 1890, 1936, 1982, 2029, 2075, 2121, 2167, 2213, 2260, 2307, 2353, 2399, 2445, 2492, 2538, 2584, 2630, 2676, 2723, 2769, 2815, 2861, 2907, 2954, 3000, 3047, 3093, 3140, 3186, 3232, 3278, 3324, 3371, 3417, 3463, 3509, 3555, 3602, 3648]]
    攻击次数2 = 8
    CD = 15.0
    TP成长 = 0.1
    TP上限 = 5


class 技能13(职业主动技能):
    名称 = '邪影·波动剑'
    类型 = '魔法'
    武器惩罚类型 = '魔法固伤'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    data0 = [100]*60
    # 前进时的魔法攻击力：<data0>%
    data1 = [int(x*1.05) for x in [0, 830, 914, 998, 1083, 1167, 1251, 1335, 1419, 1504, 1588, 1672, 1756, 1840, 1925, 2009, 2093, 2177, 2261, 2346, 2430, 2514, 2598, 2682, 2767, 2851, 2935, 3019, 3103, 3188, 3272, 3356, 3440, 3524, 3608, 3693, 3777, 3861, 3945, 4029, 4114, 4198, 4282, 4366, 4450, 4535, 4619, 4703, 4787, 4871, 4956, 5040, 5124, 5208, 5292, 5377, 5461, 5545, 5629, 5713, 5798, 5882, 5966, 6050, 6134, 6219, 6303, 6387, 6471, 6555, 6640]]
    攻击次数2 = 3
    # 爆炸魔法攻击力：<data1>%
    data2 = [int(x*1.05) for x in [0, 166, 183, 200, 216, 233, 250, 268, 285, 301, 318, 335, 352, 369, 385, 402, 419, 436, 453, 470, 487, 504, 521, 538, 554, 571, 588, 605, 622, 638, 655, 673, 690, 707, 723, 740, 757, 774, 791, 807, 824, 841, 859, 876, 893, 909, 926, 943, 960, 977, 993, 1010, 1027, 1044, 1062, 1078, 1095, 1112, 1129, 1146, 1162, 1179, 1196, 1213, 1230, 1246, 1264, 1281, 1298, 1315, 1331]]
    攻击次数3 = 4
    # 基础 = 100.0
    # 成长 = 0
    # 基础2 = 709.810
    # 成长2 = 80.190
    # 攻击次数3 = 3
    # 基础3 = 141.905
    # 成长3 = 16.095
    # 攻击次数4 = 4
    CD = 7.0


class 技能14(职业主动技能):
    名称 = '暗魂之手'
    类型 = '物理'
    武器惩罚类型 = '物理百分比'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 43
    # 基础 = 1975-201
    # 成长 = 201
    # 基础2 = 1341-136
    # 成长2 = 136
    # 攻击次数3 = 1
    # 物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 2074, 2285, 2495, 2706, 2916, 3127, 3337, 3548, 3758, 3968, 4179, 4389, 4600, 4810, 5021, 5231, 5442, 5652, 5862, 6073, 6283, 6494, 6704, 6915, 7125, 7336, 7546, 7757, 7967, 8177, 8388, 8598, 8810, 9020, 9231, 9441, 9652, 9862, 10072, 10283, 10493, 10704, 10914, 11125, 11335, 11546, 11756, 11967, 12177, 12387, 12598, 12808, 13019, 13229, 13440, 13650, 13861, 14071, 14281, 14492, 14702, 14913, 15123, 15334, 15544, 15755, 15965, 16176]]
    # 喷发时物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 1408, 1551, 1694, 1836, 1979, 2122, 2265, 2408, 2550, 2694, 2837, 2980, 3123, 3266, 3408, 3551, 3694, 3837, 3980, 4122, 4265, 4408, 4552, 4695, 4837, 4980, 5123, 5266, 5409, 5551, 5694, 5837, 5980, 6123, 6265, 6409, 6552, 6695, 6838, 6980, 7123, 7266, 7409, 7552, 7694, 7837, 7980, 8123, 8267, 8409, 8552, 8695, 8838, 8981, 9123, 9266, 9409, 9552, 9695, 9837, 9980, 10124, 10267, 10410, 10553, 10695, 10838, 10981]]
    攻击次数2 = 1
    CD = 6.0
    TP成长 = 0.1
    TP上限 = 5


class 技能15(职业主动技能):
    名称 = '突刺'
    类型 = '物理'
    所在等级 = 10
    等级上限 = 60
    基础等级 = 48
    # 基础 = 160.745 * 3
    # 成长 = 18.255 * 3
    # 攻击次数 = 3
    # 普通物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 188, 208, 227, 246, 265, 285, 303, 322, 341, 361, 380, 399, 418, 438, 457, 476, 495, 515, 533, 552, 571, 591, 610, 629, 649, 668, 687, 706, 726, 744, 763, 782, 802, 821, 840, 859, 879, 898, 917, 936, 956, 974, 993, 1012, 1032, 1051, 1070, 1089, 1109, 1128, 1147, 1166, 1185, 1204, 1223, 1242, 1262, 1281, 1300, 1319, 1339, 1358, 1377, 1395, 1415, 1434, 1453, 1472, 1492, 1511]]
    攻击次数 = 3
    CD = 3
    TP上限 = 3
    TP成长 = -0.1

    # 太/光加成
    def 等效百分比(self, 武器类型):
        if 武器类型 == '光剑' or '太刀':
            self.攻击次数 = 5
            self.data0 = [int(x*0.7) for x in self.data0]
        self.攻击次数 = self.攻击次数 + 2*self.TP等级
        return super().等效百分比(武器类型)
        # 等效倍率 = 0.0
        # if len(self.data0) >= self.等级 and len(self.data0) > 0:
        #     等效倍率 += self.data0[self.等级] * (self.攻击次数 + 2*self.TP等级)
        # return 等效倍率 * self.倍率 * (1 + self.TP成长 * self.TP等级)


class 技能16(职业主动技能):
    名称 = '暗影鞭'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 20
    等级上限 = 60
    基础等级 = 29
    # 基础 = 635.357
    # 成长 = 120.643
    # 基础2 = 1483.5
    # 成长2 = 281.5
    # 攻击次数3 = 1
    # 第1击魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 794, 921, 1047, 1174, 1301, 1427, 1554, 1681, 1807, 1934, 2061, 2187, 2314, 2441, 2567, 2694, 2820, 2947, 3074, 3200, 3327, 3455, 3581, 3708, 3835, 3961, 4088, 4214, 4341, 4468, 4594, 4721, 4848, 4974, 5101, 5228, 5354, 5481, 5607, 5734, 5861, 5987, 6114, 6241, 6367, 6494, 6621, 6747, 6874, 7000, 7127, 7254, 7380, 7508, 7635, 7761, 7888, 8015, 8141, 8268, 8394, 8521, 8648, 8774, 8901, 9028, 9154, 9281, 9408, 9534]]
    # 第2击魔法攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 1853, 2149, 2444, 2741, 3036, 3332, 3627, 3923, 4218, 4514, 4809, 5105, 5400, 5696, 5991, 6286, 6582, 6878, 7174, 7469, 7765, 8060, 8356, 8651, 8947, 9242, 9538, 9833, 10129, 10424, 10721, 11016, 11312, 11607, 11903, 12198, 12494, 12789, 13085, 13380, 13676, 13971, 14267, 14562, 14859, 15154, 15450, 15745, 16041, 16336, 16632, 16927, 17223, 17518, 17813, 18109, 18404, 18701, 18996, 19292, 19587, 19883, 20178, 20474, 20769, 21065, 21360, 21656, 21951, 22247]]
    攻击次数2 = 1
    CD = 8.4
    TP成长 = 0.10
    TP上限 = 5


class 技能17(职业主动技能):
    名称 = '灭魂封魔斩'
    类型 = '物理'
    所在等级 = 25
    等级上限 = 60
    基础等级 = 41
    # 基础 = 3785.525 * 1.24
    # 成长 = 427.275 * 1.24
    # 物理攻击力：<data0>%
    # 把前方敌人吸附到自身的近身处， 并对其进行无属性斩击。
    # 吸附的敌人越多， 斩击时造成的伤害就越大。
    data0 = [int(x*1.05) for x in [0, 4424, 4873, 5321, 5771, 6219, 6668, 7117, 7565, 8015, 8463, 8912, 9361, 9810, 10259, 10708, 11156, 11606, 12054, 12503, 12952, 13401, 13850, 14298, 14747, 15196, 15645, 16093, 16543, 16991, 17441, 17889, 18338, 18787, 19236, 19684, 20134, 20582, 21032, 21480, 21928, 22378, 22826, 23275, 23724, 24173, 24621, 25071, 25519, 25969, 26417, 26866, 27315, 27764, 28212, 28662, 29110, 29559, 30008, 30456, 30906, 31354, 31803, 32252, 32701, 33150, 33599, 34047, 34497, 34945, 35394]]
    # 若吸附的是领主、 稀有、 精英、 深渊、 人形怪敌人， 则敌人受到的伤害会更大
    倍率 = 1.24
    CD = 30
    TP成长 = 0.10
    TP上限 = 5


class 技能18(职业主动技能):
    名称 = '冥魂珠'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    # 基础 = 293.811
    # 成长 = 33.189
    # 攻击次数 = 13
    # 基础2 = 668.514
    # 成长2 = 75.486
    # 攻击次数3 = 1
    # 魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 343, 378, 413, 447, 482, 518, 552, 587, 622, 656, 692, 727, 761, 796, 831, 865, 901, 936, 970, 1005, 1040, 1075, 1110, 1145, 1179, 1214, 1250, 1284, 1319, 1353, 1388, 1423, 1458, 1493, 1528, 1562, 1597, 1633, 1667, 1702, 1737, 1771, 1807, 1842, 1876, 1911, 1946, 1980, 2016, 2051, 2085, 2120, 2155, 2190, 2225, 2260, 2294, 2329, 2365, 2399, 2434, 2469, 2503, 2538, 2574, 2608, 2643, 2678, 2712, 2748]]
    攻击次数 = 13
    # 冥魂珠爆炸魔法攻击力：<data2>%
    data1 = [int(x*1.05) for x in [0, 781, 860, 940, 1019, 1098, 1177, 1257, 1336, 1415, 1494, 1574, 1653, 1733, 1811, 1891, 1970, 2050, 2128, 2208, 2287, 2367, 2445, 2525, 2604, 2684, 2763, 2842, 2921, 3001, 3080, 3159, 3238, 3318, 3397, 3477, 3555, 3635, 3714, 3794, 3872, 3952, 4031, 4111, 4190, 4269, 4348, 4428, 4507, 4586, 4665, 4745, 4824, 4904, 4982, 5062, 5141, 5221, 5299, 5379, 5459, 5538, 5618, 5696, 5776, 5855, 5935, 6013, 6093, 6172, 6252]]
    攻击次数2 = 1
    CD = 10.5
    # Tp每级增加攻击次数4
    TP成长 = 0.1
    TP上限 = 3

    def 等效百分比(self, 武器类型):
        self.攻击次数 = self.攻击次数 + 3 * self.TP等级
        return super().等效百分比(武器类型)
        # if self.等级 == 0:
        #     return 0
        # else:
        #     return int(((self.攻击次数 + 3*self.TP等级) * (self.基础 + self.成长 * self.等级) + self.攻击次数3 * (self.基础2 + self.成长2 * self.等级)) * self.倍率)


class 技能19(职业主动技能):
    名称 = '暗影升龙击'
    类型 = '物理'
    所在等级 = 30
    等级上限 = 60
    基础等级 = 38
    基础 = 3480.027
    成长 = 392.973
    # 冲撞物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 945, 1041, 1136, 1233, 1328, 1424, 1520, 1616, 1712, 1808, 1904, 1999, 2096, 2191, 2287, 2384, 2479, 2575, 2671, 2767, 2862, 2959, 3054, 3150, 3247, 3342, 3438, 3534, 3630, 3725, 3822, 3918, 4013, 4110, 4205, 4301, 4397, 4493, 4589, 4685, 4781, 4876, 4973, 5068, 5164, 5261, 5356, 5452, 5548, 5644, 5739, 5836, 5931, 6027, 6124, 6219, 6315, 6411, 6507, 6602, 6699, 6795, 6890, 6987, 7082]]
    攻击次数 = 1
    # 上斩物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 1422, 1566, 1710, 1854, 1998, 2143, 2287, 2432, 2576, 2720, 2864, 3008, 3153, 3297, 3441, 3586, 3730, 3875, 4018, 4162, 4307, 4451, 4595, 4740, 4884, 5028, 5172, 5316, 5461, 5605, 5750, 5894, 6038, 6182, 6326, 6471, 6615, 6759, 6904, 7048, 7193, 7336, 7480, 7625, 7769, 7914, 8058, 8202, 8346, 8490, 8635, 8779, 8923, 9068, 9212, 9357, 9500, 9644, 9789, 9933, 10077, 10222, 10366, 10511, 10654]]
    攻击次数2 = 1
    # 下捶物理攻击力：<data2>% ~ <data3>%
    data2 = [int(x*1.05) for x in [0, 1019, 1121, 1224, 1328, 1431, 1535, 1638, 1742, 1845, 1948, 2052, 2155, 2259, 2361, 2465, 2568, 2671, 2775, 2878, 2982, 3085, 3188, 3292, 3395, 3499, 3602, 3705, 3808, 3911, 4015, 4118, 4222, 4325, 4429, 4532, 4635, 4739, 4842, 4946, 5048, 5151, 5255, 5358, 5462, 5565, 5669, 5772, 5875, 5979, 6082, 6186, 6288, 6391, 6495, 6598, 6702, 6805, 6909, 7012, 7115, 7219, 7322, 7426, 7529, 7632]]
    攻击次数3 = 1
    # 下捶冲击波物理攻击力：<data4>%
    data3 = [int(x*1.05) for x in [0, 681, 751, 819, 888, 958, 1027, 1096, 1166, 1235, 1303, 1372, 1442, 1511, 1580, 1650, 1719, 1788, 1856, 1926, 1995, 2064, 2134, 2203, 2272, 2340, 2410, 2479, 2548, 2618, 2687, 2756, 2825, 2894, 2963, 3032, 3102, 3171, 3240, 3310, 3378, 3447, 3516, 3586, 3655, 3724, 3794, 3862, 3931, 4001, 4070, 4139, 4208, 4278, 4346, 4415, 4485, 4554, 4623, 4692, 4762, 4830, 4899, 4969, 5038, 5107]]
    攻击次数4 = 1

    CD = 10


class 技能20(职业主动技能):
    名称 = '冥魂之陨'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 302, 334, 364, 395, 426, 457, 487, 519, 549, 580, 610, 642, 672, 702, 734, 764, 795, 826, 857, 887, 919, 949, 980, 1010, 1042, 1072, 1103, 1134, 1164, 1195, 1226, 1257, 1287, 1318, 1349, 1380, 1410, 1442, 1472, 1503, 1534, 1565, 1595, 1626, 1657, 1687, 1718, 1749, 1780, 1810, 1842, 1872, 1903, 1934, 1965, 1995, 2027, 2057, 2087, 2118, 2149, 2180, 2210, 2242, 2272, 2303, 2334, 2365, 2395, 2427]]
    攻击次数 = 24
    CD = 21
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 24 * 1.14
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数 = 24 * 1.23
            self.CD *= 0.9


class 技能21(职业主动技能):
    名称 = '破魂之刃'
    类型 = '物理'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 刺击物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 1243, 1369, 1495, 1621, 1748, 1874, 2000, 2126, 2252, 2378, 2505, 2631, 2757, 2883, 3009, 3135, 3262, 3388, 3514, 3640, 3766, 3892, 4019, 4145, 4271, 4397, 4523, 4649, 4776, 4902, 5028, 5154, 5280, 5406, 5534, 5660, 5786, 5912, 6038, 6164, 6291, 6417, 6543, 6669, 6795, 6921, 7048, 7174, 7300, 7426, 7552, 7678, 7805, 7931, 8057, 8183, 8309, 8435, 8561, 8688, 8814, 8940, 9066, 9192, 9318, 9445, 9571, 9697]]
    # 爆炸物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 6285, 6924, 7561, 8199, 8837, 9474, 10113, 10750, 11387, 12026, 12663, 13301, 13939, 14576, 15215, 15852, 16489, 17128, 17765, 18403, 19041, 19678, 20316, 20954, 21591, 22230, 22867, 23505, 24143, 24780, 25418, 26056, 26693, 27332, 27969, 28607, 29245, 29882, 30520, 31158, 31795, 32433, 33071, 33709, 34347, 34984, 35622, 36260, 36897, 37535, 38173, 38811, 39449, 40086, 40724, 41362, 41999, 42637, 43275, 43913, 44550, 45188, 45826, 46464, 47101, 47739, 48377, 49015]]
    攻击次数2 = 1
    CD = 20
    TP成长 = 0.1
    TP上限 = 5


class 技能22(职业主动技能):
    名称 = '凝魂波动阵'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 35
    等级上限 = 60
    基础等级 = 36
    # 基础 = 1875.171
    # 成长 = 211.829
    # 基础2 = 622.629
    # 成长2 = 70.371
    # 攻击次数3 = 7
    # 捶击物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 728, 801, 876, 949, 1024, 1097, 1171, 1245, 1319, 1392, 1467, 1540, 1615, 1688, 1762, 1836, 1910, 1983, 2058, 2132, 2205, 2280, 2353, 2428, 2501, 2575, 2649, 2723, 2796, 2871, 2944, 3018, 3092, 3166, 3240, 3314, 3387, 3462, 3535, 3609, 3683, 3757, 3831, 3905, 3978, 4053, 4127, 4200, 4275, 4348, 4422, 4496, 4570, 4644, 4718, 4791, 4866, 4939, 5013, 5087, 5161, 5234, 5309, 5382, 5457, 5530, 5604, 5678, 5752, 5825]]
    # 多段魔法攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 728, 801, 876, 949, 1024, 1097, 1171, 1245, 1319, 1392, 1467, 1540, 1615, 1688, 1762, 1836, 1910, 1983, 2058, 2132, 2205, 2280, 2353, 2428, 2501, 2575, 2649, 2723, 2796, 2871, 2944, 3018, 3092, 3166, 3240, 3314, 3387, 3462, 3535, 3609, 3683, 3757, 3831, 3905, 3978, 4053, 4127, 4200, 4275, 4348, 4422, 4496, 4570, 4644, 4718, 4791, 4866, 4939, 5013, 5087, 5161, 5234, 5309, 5382, 5457, 5530, 5604, 5678, 5752, 5825]]
    攻击次数2 = 7
    # 波动阵解除时的魔法攻击力：<data3>%
    data2 = [int(x*1.05) for x in [0, 1464, 1612, 1761, 1909, 2058, 2206, 2355, 2503, 2652, 2800, 2949, 3098, 3247, 3395, 3543, 3692, 3840, 3989, 4137, 4286, 4434, 4583, 4731, 4880, 5028, 5178, 5326, 5475, 5623, 5771, 5920, 6068, 6217, 6365, 6514, 6662, 6811, 6959, 7109, 7257, 7406, 7554, 7703, 7851, 7999, 8148, 8296, 8445, 8593, 8742, 8890, 9039, 9188, 9337, 9485, 9634, 9782, 9930, 10079, 10227, 10376, 10524, 10673, 10821, 10970, 11118, 11268, 11416, 11565, 11713]]
    攻击次数3 = 1
    # 扩散魔法攻击力：<data4>%，待定 原来没有
    data3 = [int(x*1.05) for x in [0, 287, 316, 345, 375, 403, 433, 462, 491, 520, 549, 579, 608, 637, 666, 695, 725, 754, 782, 812, 841, 870, 900, 928, 958, 987, 1016, 1045, 1074, 1104, 1133, 1161, 1191, 1220, 1250, 1279, 1307, 1337, 1366, 1395, 1424, 1453, 1483, 1512, 1541, 1570, 1599, 1629, 1658, 1686, 1716, 1745, 1775, 1803, 1832, 1862, 1891, 1920, 1949, 1978, 2008, 2037, 2065, 2095, 2124, 2154, 2183, 2211, 2241, 2270, 2300]]
    攻击次数4 = 1
    CD = 21
    TP成长 = 0.1
    TP上限 = 5


class 技能23(职业主动技能):
    名称 = '破魂斩'
    类型 = '物理'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 5927, 6529, 7131, 7732, 8334, 8934, 9536, 10138, 10739, 11340, 11942, 12543, 13145, 13747, 14347, 14949, 15551, 16152, 16753, 17354, 17956, 18558, 19159, 19760, 20362, 20963, 21565, 22166, 22767, 23369, 23970, 24572, 25173, 25774, 26376, 26978, 27578, 28180, 28782, 29383, 29985, 30585, 31187, 31789, 32390, 32991, 33593, 34194, 34796, 35398, 35998, 36600, 37202, 37803, 38404, 39005, 39607, 40209, 40810, 41411, 42013, 42614, 43216, 43818, 44418, 45020, 45621, 46223, 46824, 47425]]
    CD = 15
    TP成长 = 0.12
    TP上限 = 5

    # def 等效百分比(self, 武器类型):
    #     return self.数据1[self.等级] * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能24(职业主动技能):
    名称 = '冥炎破空斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 冥炎剑右斩击魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 1359, 1496, 1635, 1772, 1910, 2048, 2186, 2324, 2461, 2600, 2737, 2875, 3014, 3151, 3289, 3427, 3565, 3702, 3841, 3978, 4116, 4255, 4392, 4530, 4667, 4806, 4943, 5081, 5220, 5357, 5495, 5633, 5771, 5908, 6047, 6185, 6322, 6461, 6598, 6736, 6874, 7012, 7149, 7287, 7426, 7563, 7701, 7839, 7977, 8114, 8253, 8391, 8528, 8667, 8804, 8942, 9080, 9218, 9356, 9493, 9632, 9769, 9907, 10045, 10183, 10320, 10459, 10597, 10734, 10873]]
    # 冥炎剑左斩击魔法攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 2042, 2249, 2457, 2664, 2871, 3079, 3285, 3492, 3700, 3907, 4115, 4322, 4529, 4737, 4943, 5150, 5358, 5565, 5772, 5980, 6187, 6395, 6601, 6808, 7016, 7223, 7430, 7638, 7845, 8051, 8259, 8466, 8673, 8881, 9088, 9296, 9503, 9709, 9917, 10124, 10331, 10539, 10746, 10953, 11160, 11367, 11575, 11782, 11989, 12197, 12404, 12611, 12818, 13025, 13232, 13440, 13647, 13855, 14062, 14268, 14476, 14683, 14890, 15098, 15305, 15512, 15720, 15926, 16134, 16341]]
    # 冥炎剑上斩击魔法攻击力：<data2>%
    data2 = [int(x*1.05) for x in [0, 4085, 4499, 4914, 5329, 5742, 6157, 6572, 6986, 7400, 7815, 8230, 8644, 9058, 9473, 9887, 10302, 10716, 11131, 11545, 11960, 12374, 12789, 13203, 13617, 14032, 14446, 14861, 15275, 15690, 16104, 16519, 16933, 17347, 17762, 18177, 18591, 19005, 19420, 19835, 20249, 20663, 21078, 21492, 21906, 22321, 22736, 23150, 23564, 23979, 24394, 24807, 25222, 25637, 26052, 26465, 26880, 27295, 27710, 28123, 28538, 28953, 29366, 29781, 30196, 30611, 31024, 31439, 31854, 32269, 32682]]
    # 冥炎攻击力：<data3>%
    data3 = [int(x*1.05) for x in [0, 137, 150, 164, 177, 192, 206, 219, 233, 247, 261, 275, 289, 302, 316, 331, 344, 358, 372, 385, 400, 414, 427, 441, 456, 469, 483, 497, 510, 525, 539, 552, 566, 580, 594, 608, 622, 635, 649, 664, 677, 691, 705, 718, 733, 747, 760, 774, 789, 802, 816, 830, 843, 858, 872, 885, 899, 912, 927, 941, 954, 968, 982, 996, 1010, 1024, 1037, 1052, 1066, 1079, 1093]]
    攻击次数 = 2
    攻击次数2 = 2
    攻击次数3 = 2
    攻击次数4 = 8
    CD = 47.2
    TP成长 = 0.1
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数3 = 2 * 1.34
            self.攻击次数4 = 8 * 2.67
        elif x == 1:
            self.攻击次数3 = 2 * 1.34
            self.攻击次数4 = 8 * 3.99

    # def 等效百分比(self, 武器类型):
    #     return (self.数据1[self.等级] * self.攻击次数2 + self.数据2[self.等级] * self.攻击次数3 + self.数据3[self.等级] * self.攻击次数4 + self.数据4[self.等级] * self.攻击次数4) * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能25(职业主动技能):
    名称 = '禁魂斩'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 40
    等级上限 = 60
    基础等级 = 33
    # 魔法攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 7608, 8381, 9153, 9925, 10696, 11468, 12241, 13013, 13784, 14556, 15328, 16101, 16872, 17644, 18416, 19188, 19961, 20732, 21504, 22276, 23048, 23820, 24592, 25364, 26136, 26907, 27680, 28452, 29224, 29995, 30767, 31540, 32312, 33083, 33855, 34627, 35400, 36171, 36943, 37715, 38487, 39260, 40031, 40803, 41575, 42347, 43119, 43891, 44663, 45435, 46206, 46979, 47751, 48523, 49294, 50066, 50839, 51611, 52382, 53154, 53926, 54699, 55470, 56242, 57014, 57786, 58559, 59330, 60102, 60874]]
    CD = 21
    TP成长 = 0
    TP上限 = 5


class 技能26(职业主动技能):
    名称 = '魔狱裂魂斩'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 捶击时物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 396, 436, 476, 517, 557, 596, 637, 677, 717, 757, 798, 838, 878, 919, 959, 999, 1038, 1079, 1119, 1159, 1199, 1240, 1280, 1320, 1361, 1401, 1441, 1481, 1521, 1561, 1601, 1642, 1682, 1722, 1762, 1803, 1843, 1883, 1924, 1964, 2003, 2043, 2084, 2124, 2164, 2205, 2245, 2285, 2325, 2366, 2406, 2445, 2485, 2526, 2566, 2606, 2647, 2687, 2727, 2767, 2808, 2848, 2888, 2928, 2968, 3008, 3048, 3089, 3129, 3169]]
    # 冲击波物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 2772, 3053, 3335, 3616, 3898, 4179, 4460, 4742, 5023, 5305, 5585, 5866, 6148, 6429, 6711, 6992, 7273, 7555, 7836, 8118, 8399, 8680, 8961, 9242, 9524, 9805, 10086, 10368, 10649, 10931, 11212, 11493, 11775, 12055, 12336, 12618, 12899, 13181, 13462, 13743, 14025, 14306, 14588, 14869, 15149, 15431, 15712, 15994, 16275, 16556, 16838, 17119, 17401, 17682, 17963, 18245, 18525, 18807, 19088, 19369, 19651, 19932, 20214, 20495, 20776, 21058, 21339, 21620, 21901, 22182]]
    # 黑暗气息攻击力：<data2>%
    data2 = [int(x*1.05) for x in [0, 1943, 2139, 2336, 2534, 2731, 2927, 3125, 3322, 3519, 3716, 3913, 4111, 4307, 4505, 4702, 4898, 5096, 5293, 5489, 5687, 5884, 6082, 6278, 6475, 6673, 6869, 7067, 7264, 7460, 7658, 7855, 8052, 8249, 8446, 8644, 8840, 9037, 9235, 9432, 9629, 9826, 10023, 10220, 10417, 10614, 10811, 11008, 11206, 11403, 11599, 11797, 11994, 12191, 12388, 12585, 12783, 12979, 13176, 13374, 13570, 13768, 13965, 14161, 14359, 14556, 14754, 14950, 15147, 15345, 15541]]
    攻击次数 = 1
    攻击次数2 = 1
    攻击次数3 = 6
    CD = 40
    TP成长 = 0.10
    TP上限 = 5


class 技能27(职业主动技能):
    名称 = '黑暗明王阵'
    类型 = '魔法'
    武器惩罚类型 = '魔法百分比'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 波动旋转魔法伤害：<data0>%
    data0 = [int(x*1.05) for x in [0, 2058, 2267, 2476, 2685, 2888, 3104, 3308, 3515, 3724, 3936, 4145, 4352, 4563, 4769, 4979, 5187, 5398, 5603, 5815, 6022, 6231, 6443, 6651, 6860, 7063, 7278, 7482, 7691, 7900, 8109, 8318, 8528, 8737, 8942, 9156, 9361, 9570, 9777, 9990, 10199, 10403, 10617, 10821, 11030, 11239, 11449, 11655, 11868, 12073, 12283, 12493, 12701, 12910, 13121, 13325, 13535, 13745, 13955, 14163, 14371, 14582, 14785, 14995, 15204, 15414, 15623, 15831, 16041, 16249, 16457]]
    # 爆炸魔法伤害：<data1>%
    data1 = [int(x*1.05) for x in [0, 4774, 5261, 5740, 6222, 6729, 7189, 7692, 8180, 8660, 9135, 9618, 10110, 10584, 11081, 11559, 12047, 12525, 13022, 13497, 13988, 14472, 14945, 15430, 15914, 16417, 16880, 17383, 17867, 18351, 18832, 19315, 19799, 20282, 20778, 21243, 21741, 22225, 22720, 23186, 23670, 24168, 24637, 25139, 25618, 26105, 26581, 27077, 27549, 28043, 28527, 29006, 29492, 29973, 30456, 30956, 31435, 31918, 32395, 32881, 33365, 33845, 34350, 34829, 35313, 35795, 36280, 36763, 37241, 37730, 38218]]
    攻击次数 = 4
    攻击次数2 = 1
    CD = 47.2
    TP成长 = 0.10
    TP上限 = 5


class 技能28(职业主动技能):
    名称 = '魔影剑舞'
    所在等级 = 45
    等级上限 = 60
    基础等级 = 31
    # 斩击物理攻击力：<data0>%
    data0 = [int(x*1.05) for x in [0, 756, 834, 907, 985, 1062, 1139, 1215, 1292, 1369, 1446, 1520, 1597, 1675, 1750, 1827, 1905, 1981, 2059, 2135, 2211, 2287, 2365, 2441, 2517, 2595, 2671, 2747, 2825, 2900, 2977, 3054, 3130, 3207, 3282, 3361, 3437, 3512, 3590, 3669, 3742, 3820, 3897, 3972, 4050, 4127, 4204, 4280, 4356, 4434, 4508, 4583, 4661, 4737, 4812, 4889, 4967, 5042, 5119, 5196, 5272, 5349, 5424, 5500, 5578, 5654, 5730, 5808, 5883, 5959, 6035]]
    # 剑气物理攻击力：<data1>%
    data1 = [int(x*1.05) for x in [0, 1811, 1993, 2183, 2365, 2550, 2730, 2916, 3103, 3284, 3462, 3654, 3836, 4019, 4207, 4388, 4570, 4750, 4938, 5122, 5304, 5496, 5673, 5855, 6042, 6228, 6407, 6593, 6776, 6965, 7146, 7327, 7515, 7695, 7883, 8061, 8247, 8435, 8615, 8795, 8987, 9169, 9352, 9538, 9720, 9904, 10085, 10272, 10454, 10634, 10827, 11019, 11200, 11387, 11573, 11755, 11942, 12128, 12309, 12493, 12681, 12861, 13047, 13233, 13416, 13602, 13788, 13969, 14156, 14342, 14524]]
    攻击次数 = 13
    护石斩击攻击力 = 1
    护石锤击 = 0
    护石冲击波 = 0
    护石黑暗气息 = 0
    护石升龙斩 = 0
    攻击次数2 = 3
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    倍率 = 1
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.护石斩击攻击力 = 0.5
            self.攻击次数2 = 0
            # 锤击1次
            self.护石锤击 = 0.19
            # 冲击波1次
            self.护石冲击波 = 1.3
            # 黑暗气息6次
            self.护石黑暗气息 = 0.91 * 6
            self.护石升龙斩 = 0.96
        elif x == 1:
            self.护石斩击攻击力 = 0.5
            self.攻击次数2 = 0
            self.护石锤击 = 0.19
            self.护石冲击波 = 1.3
            self.护石黑暗气息 = 0.91 * 6
            self.护石升龙斩 = 1.63

    def 等效百分比(self, 武器类型):
        return (self.data0[self.等级] * self.攻击次数 * self.护石斩击攻击力 +
                self.data1[self.等级] * self.攻击次数2 +
                self.data1[self.等级] * self.护石锤击 +
                self.data1[self.等级] * self.护石冲击波 +
                self.data1[self.等级] * self.护石黑暗气息 +
                self.data1[self.等级] * self.护石升龙斩) * (1 + self.TP成长 * self.TP等级) * self.倍率


class 技能29(职业主动技能):
    名称 = '幽魂剑'
    所在等级 = 50
    等级上限 = 40
    基础等级 = 19
    data0 = [int(x*1.05) for x in [0, 216, 251, 286, 320, 355, 390, 424, 459, 492, 527, 562, 596, 631, 666, 700, 735, 770, 804, 839, 874, 908, 942, 977, 1011, 1046, 1080, 1115, 1150, 1184, 1219, 1254, 1288, 1323, 1358, 1392, 1426, 1461, 1495, 1530, 1565, 1599, 1634, 1668, 1703, 1738, 1772, 1807, 1842, 1875, 1910, 1945, 1979, 2014, 2049, 2083, 2118, 2153, 2187, 2222, 2256, 2291, 2326, 2359, 2394, 2429, 2463, 2498, 2533, 2567, 2602]]
    data1 = [int(x*1.05) for x in [0, 7156, 8297, 9437, 10579, 11719, 12860, 14002, 15142, 16283, 17424, 18565, 19705, 20847, 21988, 23128, 24270, 25410, 26551, 27692, 28833, 29974, 31115, 32256, 33396, 34538, 35678, 36819, 37961, 39101, 40242, 41383, 42524, 43664, 44806, 45946, 47087, 48229, 49369, 50510, 51651, 52792, 53932, 55074, 56215, 57355, 58497, 59637, 60778, 61919, 63060, 64201, 65342, 66483, 67623, 68765, 69905, 71046, 72188, 73328, 74469, 75609, 76751, 77891, 79032, 80173, 81314, 82455, 83596, 84737, 85877]]
    攻击次数 = 33
    攻击次数2 = 1
    CD = 45
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 6
            self.攻击次数2 = 2.27
            self.CD *= 0.89


class 技能30(职业主动技能):
    名称 = '暗炎冥魂波'
    所在等级 = 60
    等级上限 = 40
    基础等级 = 16
    data0 = [int(x*1.05) for x in [0, 3369, 3907, 4444, 4981, 5519, 6055, 6593, 7131, 7667, 8205, 8742, 9279, 9816, 10354, 10891, 11428, 11966, 12502, 13040, 13578, 14114, 14652, 15189, 15726, 16263, 16801, 17338, 17875, 18412, 18949, 19487, 20024, 20561, 21099, 21635, 22173, 22710, 23247, 23785, 24322, 24859, 25396, 25934, 26471, 27008, 27546, 28082, 28620, 29157, 29694, 30232, 30769, 31306, 31843, 32381, 32918, 33455, 33993, 34529, 35067, 35604, 36141, 36679, 37216, 37753, 38290, 38828, 39365, 39902, 40440]]
    攻击次数 = 5
    CD = 30
    TP成长 = 0.10
    TP上限 = 5
    倍率 = 1
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 *= 1.21
            self.CD *= 0.9
        elif x == 1:
            self.倍率 *= 1.29
            self.CD *= 0.9


class 技能31(职业主动技能):
    名称 = '斩龙破'
    所在等级 = 70
    等级上限 = 40
    基础等级 = 18
    data0 = [int(x*1.05) for x in [0, 1825, 2010, 2196, 2380, 2566, 2751, 2936, 3122, 3306, 3491, 3677, 3862, 4048, 4233, 4417, 4603, 4788, 4973, 5159, 5343, 5529, 5714, 5899, 6085, 6270, 6454, 6640, 6825, 7011, 7196, 7380, 7566, 7751, 7936, 8122, 8307, 8492, 8677, 8862, 9048, 9233, 9417, 9603, 9788, 9974, 10159, 10344, 10529, 10714, 10899, 11085, 11270, 11456, 11640, 11825, 12011, 12196, 12381, 12566, 12751, 12937, 13122, 13307, 13493, 13677, 13862, 14048, 14233, 14419, 14603]]
    data1 = [int(x*1.05) for x in [0, 1825, 2010, 2196, 2380, 2566, 2751, 2936, 3122, 3306, 3491, 3677, 3862, 4048, 4233, 4417, 4603, 4788, 4973, 5159, 5343, 5529, 5714, 5899, 6085, 6270, 6454, 6640, 6825, 7011, 7196, 7380, 7566, 7751, 7936, 8122, 8307, 8492, 8677, 8862, 9048, 9233, 9417, 9603, 9788, 9974, 10159, 10344, 10529, 10714, 10899, 11085, 11270, 11456, 11640, 11825, 12011, 12196, 12381, 12566, 12751, 12937, 13122, 13307, 13493, 13677, 13862, 14048, 14233, 14419, 14603]]
    data2 = [int(x*1.05) for x in [0, 16632, 18319, 20007, 21694, 23381, 25069, 26756, 28442, 30130, 31817, 33504, 35192, 36879, 38567, 40254, 41941, 43629, 45316, 47003, 48691, 50378, 52065, 53753, 55440, 57127, 58815, 60502, 62189, 63877, 65564, 67251, 68939, 70626, 72314, 74001, 75688, 77376, 79063, 80750, 82438, 84125, 85812, 87500, 89187, 90873, 92561, 94248, 95935, 97623, 99310, 100997, 102685, 104372, 106059, 107747, 109434, 111122, 112809, 114496, 116184, 117871, 119558, 121246, 122933, 124620, 126308, 127995, 129682, 131370, 133057]]
    攻击次数 = 1
    攻击次数2 = 1
    攻击次数3 = 1
    CD = 45
    TP成长 = 0.10
    TP上限 = 5
    是否有护石 = 1
    护石选项 = ['魔界', '圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.攻击次数 = 0
            self.攻击次数2 = 0
            self.data2 = [int(i*0.274) for i in self.data2]
            self.攻击次数3 = 6
            self.CD *= 0.9
        elif x == 1:
            self.攻击次数 = 0
            self.攻击次数2 = 0
            self.data2 = [int(i*0.29) for i in self.data2]
            self.攻击次数3 = 6
            self.CD *= 0.9


class 技能32(职业主动技能):
    名称 = '邪影升龙斩'
    武器惩罚类型 = '魔法固伤'
    所在等级 = 80
    等级上限 = 40
    基础等级 = 13
    data0 = [int(x*1.05) for x in [0, 45763, 50406, 55048, 59691, 64335, 68977, 73620, 78263, 82905, 87548, 92191, 96833, 101476, 106118, 110761, 115404, 120047, 124690, 129333, 133975, 138618, 143261, 147903, 152546, 157188, 161831, 166474, 171116, 175760, 180403, 185045, 189688, 194331, 198973, 203616, 208258, 212901, 217544, 222186, 226829, 231473, 236115, 240758, 245401, 250043, 254686, 259328, 263971, 268614, 273256, 277899, 282542, 287184, 291828, 296471, 301113, 305756, 310398, 315041, 319684, 324326, 328969, 333612, 338254, 342897, 347541, 352183, 356826, 361468, 366111]]
    CD = 50
    倍率 = 1
    是否有护石 = 1
    护石选项 = ['圣痕']

    def 装备护石(self, x):
        if x == 0:
            self.倍率 = 1.32


class 技能33(职业主动技能):
    名称 = '超时空碎裂'
    所在等级 = 85
    等级上限 = 40
    基础等级 = 5
    data0 = [int(x*1.134) for x in [0, 2453, 3021, 3592, 4160, 4728, 5297, 5866, 6434, 7004, 7572, 8142, 8711, 9279, 9847, 10417, 10985, 11553, 12122, 12690, 13260, 13830, 14398, 14966, 15536, 16104, 16672, 17241, 17811, 18379, 18948, 19516, 20085, 20655, 21223, 21791, 22362, 22930, 23498, 24067, 24636, 25204, 25773, 26341, 26913, 27481, 28049, 28617, 29187, 29755, 30323, 30892, 31460, 32031, 32599, 33167, 33737, 34306, 34874, 35443, 36011, 36581, 37150, 37718, 38286, 38856, 39424, 39992, 40562, 41132, 41700]]
    data1 = [int(x*1.134) for x in [0, 46605, 57411, 68219, 79026, 89833, 100639, 111446, 122252, 133059, 143867, 154676, 165481, 176288, 187096, 197902, 208710, 219517, 230321, 241129, 251937, 262743, 273550, 284358, 295166, 305972, 316779, 327587, 338393, 349200, 360006, 370812, 381620, 392427, 403236, 414041, 424849, 435657, 446463, 457269, 468076, 478882, 489691, 500497, 511303, 522111, 532918, 543727, 554532, 565340, 576146, 586952, 597760, 608567, 619373, 630181, 640988, 651796, 662603, 673409, 684218, 695021, 705830, 716637, 727442, 738251, 749057, 759864, 770672, 781479, 792287]]
    攻击次数 = 19
    攻击次数2 = 1
    CD = 180
    #基础 = 1793
    #成长 = 542
    #基础2 = 34095
    #成长2 = 10292


class 技能34(被动技能):
    名称 = '暗·短剑精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 14, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465, 480, 495, 510, 525,
           540, 555, 570, 585, 600, 615, 630, 645, 660, 675, 690, 705, 720, 735, 750, 765, 780, 795, 810, 825, 840, 855, 870, 885, 900, 915, 930, 945, 960, 975, 990, 1005, 1020, 1035, 1050]
    数据2 = [0, 12, 26, 39, 51, 64, 77, 90, 103, 116, 129, 141, 154, 167, 180, 193, 206, 219, 231, 244, 257, 270, 283, 296, 309, 321, 334, 347, 360, 373, 386, 399, 411, 424, 437, 450,
           463, 476, 489, 501, 514, 527, 540, 553, 566, 579, 591, 604, 617, 630, 643, 656, 669, 681, 694, 707, 720, 733, 746, 759, 771, 784, 797, 810, 823, 836, 849, 861, 874, 887, 900]
    # 物理攻击

    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.015, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.0129, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.015, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '短剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.0129, 5)


class 技能35(被动技能):
    名称 = '暗·太刀精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 13, 26, 39, 52, 65, 78, 91, 104, 117, 130, 143, 156, 169, 182, 195, 208, 221, 234, 247, 260, 273, 286, 299, 312, 325, 338, 351, 364, 377, 390, 403, 416, 429, 442, 455,
           468, 481, 494, 507, 520, 533, 546, 559, 572, 585, 598, 611, 624, 637, 650, 663, 676, 689, 702, 715, 728, 741, 754, 767, 780, 793, 806, 819, 832, 845, 858, 871, 884, 897, 910]
    数据2 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
           432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]

    # 物理攻击
    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.013, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '太刀':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)


class 技能36(被动技能):
    名称 = '暗·巨剑精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300,
           312, 324, 336, 348, 360, 372, 384, 396, 408, 420, 432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600]
    数据2 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300,
           312, 324, 336, 348, 360, 372, 384, 396, 408, 420, 432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600]
    # 物理攻击

    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '巨剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)


class 技能37(被动技能):
    名称 = '暗·钝器精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
           432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]
    数据2 = [0, 12, 24, 36, 48, 60, 72, 84, 96, 108, 120, 132, 144, 156, 168, 180, 192, 204, 216, 228, 240, 252, 264, 276, 288, 300, 312, 324, 336, 348, 360, 372, 384, 396, 408, 420,
           432, 444, 456, 468, 480, 492, 504, 516, 528, 540, 552, 564, 576, 588, 600, 612, 624, 636, 648, 660, 672, 684, 696, 708, 720, 732, 744, 756, 768, 780, 792, 804, 816, 828, 840]

    # 物理攻击
    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '钝器':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.00 + self.等级 * 0.012, 5)


class 技能38(被动技能):
    名称 = '暗·光剑精通'
    所在等级 = 15
    等级上限 = 40
    基础等级 = 30
    关联技能 = ['所有']
    数据1 = [0, 26, 40, 53, 66, 79, 92, 106, 119, 132, 145, 158, 172, 185, 198, 211, 224, 238, 251, 264, 277, 290, 304, 317, 330, 343,
           356, 370, 383, 396, 409, 422, 436, 449, 462, 475, 488, 502, 515, 528, 541, 554, 568, 581, 594, 607, 620, 634, 647, 660, 660]
    数据2 = [0, 26, 40, 53, 66, 79, 92, 106, 119, 132, 145, 158, 172, 185, 198, 211, 224, 238, 251, 264, 277, 290, 304, 317, 330, 343,
           356, 370, 383, 396, 409, 422, 436, 449, 462, 475, 488, 502, 515, 528, 541, 554, 568, 581, 594, 607, 620, 634, 647, 660, 660]
    # 物理攻击

    def 加成倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 魔法攻击
    def 加成倍率2(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 物理攻击力面板
    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据1[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0 or 武器类型 != '光剑':
            return 1.0
        else:
            return round(1 + self.数据2[self.等级] / 1000, 5)
            # return round(1.02 + self.等级 * 0.013, 5)


class 技能39(被动技能):
    名称 = '时间停滞'
    所在等级 = 48
    等级上限 = 40
    基础等级 = 20
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 <= 15:
            return round(1.045 + 0.01 * self.等级, 5)
        else:
            return round(0.97 + 0.015 * self.等级, 5)


class 技能40(被动技能):
    名称 = '次元融合'
    所在等级 = 75
    等级上限 = 40
    基础等级 = 11
    关联技能 = ['无']
    自定义描述 = 1

    def 技能描述(self, 武器类型):
        return '力量/智力+' + str(int(self.力智倍率() * 100 - 100)) + '%'

    def 力智倍率(self):
        return round(1 + 0.02 * self.等级, 5)
        # 每级2%力智


class 技能41(被动技能):
    名称 = '自我觉醒'
    所在等级 = 75
    等级上限 = 1
    基础等级 = 1
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        return round(1.01 + 0.1 * self.等级, 5)

    def 物理攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)

    # 魔法攻击力面板
    def 魔法攻击力倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.01 + self.等级 * 0.1, 5)


class 技能42(职业主动技能):
    名称 = '暗黑溯回斩'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 6
    CD = 60.0
    data0 = [int(i*1.05) for i in [0, 5173, 5698, 6222, 6747, 7272, 7797, 8322, 8846, 9371, 9896, 10421, 10946, 11470, 11995, 12520, 13045, 13570, 14094, 14619, 15144, 15669, 16194, 16718, 17243, 17768, 18293, 18818, 19342, 19867, 20392, 20917, 21442, 21966, 22491, 23016, 23541, 24066, 24590, 25115, 25640, 26165, 26690, 27214, 27739, 28264, 28789, 29314, 29838, 30363, 30888, 31413, 31938, 32462, 32987, 33512, 34037, 34562, 35086, 35611, 36136, 36661, 37186, 37710, 38235, 38760, 39285, 39810, 40334, 40859]]
    攻击次数 = 8
    data1 = [int(i*1.05) for i in [0, 41384, 45582, 49780, 53978, 58177, 62375, 66574, 70772, 74970, 79169, 83367, 87566, 91764, 95962, 100161, 104359, 108558, 112756, 116954, 121153, 125351, 129550, 133748, 137946, 142145, 146343, 150542, 154740, 158938, 163137, 167335, 171534, 175732, 179930, 184129, 188327, 192526, 196724, 200922, 205121, 209318, 213517, 217715, 221914, 226112, 230310, 234509, 238707, 242906, 247104, 251302, 255501, 259699, 263898, 268096, 272294, 276493, 280691, 284890, 289088, 293286, 297485, 301683, 305882, 310080, 314278, 318477, 322675, 326874]]
    攻击次数2 = 1

class 技能43(被动技能):
    名称 = '时空主宰'
    所在等级 = 95
    等级上限 = 40
    基础等级 = 4
    关联技能 = ['所有']

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(1.18 + 0.02 * self.等级, 5)



class 技能44(职业主动技能):
    名称 = '时之止境：幻灭'
    所在等级 = 100
    等级上限 = 40
    基础等级 = 2
    关联技能 = ['无']
    CD = 290.0
    data0 = [int(i*1.135) for i in [0, 295574, 364113, 432652, 501191, 569730, 638269, 706808, 775347, 843886, 912425, 980964, 1049503, 1118042, 1186581, 1255120, 1323659, 1392198, 1460737, 1529276, 1597815, 1666354, 1734893, 1803432, 1871971, 1940510, 2009049, 2077588, 2146127, 2214666, 2283205, 2351744, 2420283, 2488822, 2557361, 2625900, 2694439, 2762977, 2831516, 2900056, 2968595, 3037134, 3105673, 3174211, 3242750, 3311290, 3379829, 3448368, 3516906, 3585445, 3653984, 3722524, 3791063, 3859601, 3928140, 3996679, 4065219, 4133758, 4202296, 4270835, 4339374, 4407913, 4476453, 4544991, 4613530, 4682069, 4750608, 4819147, 4887686, 4956225, 5024764]]

    def 加成倍率(self, 武器类型):
        return 0.0


class 技能45(被动技能):
    名称 = '基础精通'
    倍率 = 1.0
    所在等级 = 1
    等级上限 = 200
    基础等级 = 100
    关联技能 = ['挑击']
    数据1 = [0, 1000, 1058, 1115, 1173, 1230, 1288, 1345, 1403, 1461, 1518, 1576, 1633, 1691, 1748, 1806, 1895, 1984, 2073, 2162, 2251, 2339, 2428, 2517, 2606, 2695, 2784, 2873, 2962, 3051, 3140, 3228, 3317, 3406, 3495, 3584, 3673, 3762, 3851, 3940, 4029, 4118, 4206, 4295, 4384, 4473, 4562, 4651, 4740, 4829, 4918, 5007, 5095, 5184, 5273, 5362, 5451, 5540, 5629, 5718, 5807, 5896, 5985, 6073, 6162, 6251, 6340, 6429, 6518, 6607, 6696, 6785, 6874, 6963, 7051, 7140, 7229, 7318, 7407, 7496, 7585, 7674, 7763, 7852, 7940, 8029, 8118, 8207, 8296, 8385, 8474, 8563, 8652, 8741, 8830, 8918, 9007, 9096, 9185, 9274, 9363, 9452, 9541, 9630, 9719, 9808, 9897, 9986,
           10075, 10164, 10253, 10342, 10431, 10520, 10609, 10698, 10787, 10876, 10965, 11054, 11143, 11232, 11321, 11410, 11499, 11588, 11677, 11766, 11855, 11944, 12033, 12122, 12211, 12300, 12389, 12478, 12567, 12656, 12745, 12834, 12923, 13012, 13101, 13190, 13279, 13368, 13457, 13546, 13635, 13724, 13813, 13902, 13991, 14080, 14169, 14258, 14347, 14436, 14525, 14614, 14703, 14792, 14881, 14970, 15059, 15148, 15237, 15326, 15415, 15504, 15593, 15682, 15771, 15860, 15949, 16038, 16127, 16216, 16305, 16394, 16483, 16572, 16661, 16750, 16839, 16928, 17017, 17106, 17195, 17284, 17373, 17462, 17551, 17640, 17729, 17818, 17907, 17996, 18085, 18174, 18263]

    def 加成倍率(self, 武器类型):
        if self.等级 == 0:
            return 1.0
        else:
            return round(self.数据1[self.等级] / 1000, 5)


技能列表 = []
i = 0
while i >= 0:
    try:
        exec('技能列表.append(技能'+str(i)+'())')
        i += 1
    except:
        i = -1

技能序号 = dict()
for i in range(len(技能列表)):
    技能序号[技能列表[i].名称] = i


黑暗武士二觉序号 = 0
黑暗武士三觉序号 = 0
for i in 技能列表:
    if i.所在等级 == 85:
        黑暗武士二觉序号 = 技能序号[i.名称]
    if i.所在等级 == 100:
        黑暗武士三觉序号 = 技能序号[i.名称]

黑暗武士护石选项 = ['无']
for i in 技能列表:
    if i.是否有伤害 == 1 and i.是否有护石 == 1:
        黑暗武士护石选项.append(i.名称)

黑暗武士符文选项 = ['无']
for i in 技能列表:
    if i.所在等级 >= 20 and i.所在等级 <= 80 and i.是否有伤害 == 1:
        黑暗武士符文选项.append(i.名称)


class 职业属性(角色属性):

    实际名称 = '极诣·黑暗武士'
    角色 = '黑暗武士'
    职业 = '黑暗武士'

    武器选项 = ['光剑', '太刀', '巨剑', '短剑', '钝器']

    类型选择 = ['物理百分比', '魔法百分比']

    # 默认
    类型 = '物理百分比'
    防具类型 = '轻甲'
    防具精通属性 = ['力量', '智力']

    主BUFF = 1.54

    远古记忆 = 0

    # 计算CD
    排列技能 = ['无', '无', '无', '无', '无'] * 6

    def __init__(self):
        基础属性输入(self)
        self.技能栏 = deepcopy(技能列表)
        self.技能序号 = deepcopy(技能序号)

    def 被动倍率计算(self):

        self.排列CD计算()

        if self.远古记忆 > 0:
            self.进图智力 += self.远古记忆 * 15

        for i in ['暗·太刀精通', '暗·短剑精通', '暗·巨剑精通', '暗·光剑精通', '暗·钝器精通']:
            if self.武器类型 not in i:
                self.技能栏[self.技能序号[i]].关联技能 = ['无']

        for i in self.技能栏:
            if i.关联技能 != ['无']:
                if i.关联技能 == ['所有']:
                    for j in self.技能栏:
                        if j.是否有伤害 == 1:
                            # 分物理魔法 调用武器精通的加成倍率
                            if i.名称 in ['暗·太刀精通', '暗·短剑精通', '暗·巨剑精通', '暗·光剑精通', '暗·钝器精通']:
                                # if j.类型 == '物理':
                                if self.类型 == '物理百分比':
                                    j.被动倍率 *= i.加成倍率(self.武器类型)
                                else:
                                    j.被动倍率 *= i.加成倍率2(self.武器类型)
                            else:
                                j.被动倍率 *= i.加成倍率(self.武器类型)
                else:
                    for k in i.关联技能:
                        self.技能栏[self.技能序号[k]].被动倍率 *= i.加成倍率(self.武器类型)

    def 伤害指数计算(self):

        防御 = max(self.防御输入 - self.固定减防, 0) * (1 - self.百分比减防)
        基准倍率 = 1.5 * self.主BUFF * (1 - 防御 / (防御 + 20000))

        # 避免出现浮点数取整BUG
        self.伤害增加 += 0.00000001

        self.属性倍率计算()

        if self.计算自适应 == 1:
            self.自适应计算()

        # self.希洛克武器提升()

        面板1 = int((self.面板力量() / 250 + 1) *
                  (self.物理攻击力 + self.进图物理攻击力) * (1 + self.百分比三攻))
        面板2 = int((self.面板智力() / 250 + 1) *
                  (self.魔法攻击力 + self.进图魔法攻击力) * (1 + self.百分比三攻))

        增伤倍率 = 1 + int(self.伤害增加 * 100) / 100
        增伤倍率 *= 1 + self.暴击伤害
        增伤倍率 *= 1 + self.最终伤害
        增伤倍率 *= self.技能攻击力
        增伤倍率 *= 1 + self.持续伤害 * self.持续伤害计算比例
        增伤倍率 *= 1 + self.附加伤害 + self.属性附加 * self.属性倍率

        temp = self.属性倍率 * 增伤倍率 * 基准倍率 / 100 * self.队友增幅系数
        # 7.8日,伤害数据压缩
        temp /= 1000

        self.伤害指数1 = 面板1 * temp
        self.伤害指数2 = 面板2 * temp

    def 排列CD计算(self):
        # super().CD倍率计算()
        for i in self.排列技能:
            count = 0
            总CD = 0
            恢复速度 = 1
            # 大恍惚CD加速只加速15级以上的，15级以下无效，所以DK在拿15级以下的技能垫技能的时候，会造成整个下排CD加速无效的BUG
            # 先检查是否存在等级<15,造成冷却恢复排列失效的
            if self.装备检查('拥抱晨曦之温暖') or self.装备检查('融化黑暗之温暖'):
                for j in i:
                    if j != '无' and self.技能栏[self.技能序号[j]].所在等级 < 15:
                        恢复速度 = 0
            for j in i:
                if j != '无':
                    count += 1
                    总CD += self.技能栏[self.技能序号[j]
                                    ].等效CD(self.武器类型, self.类型, 恢复速度)
            if count != 0:
                计算CD = 总CD / count * 1.2
                for j in i:
                    if j != '无':
                        self.技能栏[self.技能序号[j]].计算CD = 计算CD

    def 技能单次伤害计算(self, y):
        # y切装标记
        技能单次伤害 = []
        for i in self.技能栏:
            if i.是否有伤害 == 1 and self.技能切装[self.技能序号[i.名称]] != y:
                # 分物理魔法 乘伤害指数
                if i.类型 == '物理':
                    技能单次伤害.append(i.等效百分比(self.武器类型) * self.伤害指数1 * i.被动倍率)
                else:
                    技能单次伤害.append(i.等效百分比(self.武器类型) * self.伤害指数2 * i.被动倍率)
            else:
                技能单次伤害.append(0)
        return 技能单次伤害

    def 站街力量(self):
        return int(max(self.力量, self.智力) * self.技能栏[self.技能序号['次元融合']].力智倍率())

    def 站街智力(self):
        return self.站街力量()

    def 面板力量(self):
        power = (self.力量 + int((self.力量 - self.基础力量) * self.系统奶系数 + self.系统奶基数) +
                 self.进图力量) * (1 + self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率()
        intelligence = (self.智力 + int((self.智力 - self.基础智力) * self.系统奶系数 + self.系统奶基数) +
                        self.进图智力) * (1 + self.百分比力智) * self.技能栏[self.技能序号['次元融合']].力智倍率()
        return max(power, intelligence)

    def 面板智力(self):
        return self.面板力量()


class 极诣·黑暗武士(角色窗口):

    def 窗口属性输入(self):
        self.初始属性 = 职业属性()
        self.角色属性A = 职业属性()
        self.角色属性B = 职业属性()
        self.一觉序号 = 黑暗武士二觉序号
        self.二觉序号 = 黑暗武士二觉序号
        self.三觉序号 = 黑暗武士三觉序号
        self.护石选项 = deepcopy(黑暗武士护石选项)
        self.符文选项 = deepcopy(黑暗武士符文选项)

    def 界面(self):
        super().界面()

        # for i in ([self.守门人属强] + self.希洛克套装按钮 + self.希洛克单件按钮 + self.希洛克装备图标 + self.希洛克武器词条):
        #     i.move(i.x() - 85, i.y() + 380)

        for i in [self.觉醒选择, self.一觉图片, self.二觉图片, self.一觉遮罩, self.二觉遮罩]:
            i.move(-1000, -1000)

        for i in self.角色属性A.技能栏:
            序号 = self.角色属性A.技能序号[i.名称]
            if i.所在等级 == 50:
                self.等级调整[序号].clear()
                for j in range(- i.基础等级, i.等级上限 - i.基础等级 + 1):
                    self.等级调整[序号].addItem(str(j))

        初始x = 310
        初始y = 640
        self.技能排列 = QLabel(self.main_frame2)
        self.技能排列.setPixmap(
            QPixmap('./ResourceFiles/'+self.角色属性A.实际名称 + "/技能/skill.png"))
        self.技能排列.resize(242, 293)
        self.技能排列.move(初始x, 初始y)

        技能名称 = ['无']
        for i in self.初始属性.技能栏:
            if i.是否主动 == 1:
                技能名称.append(i.名称)

        self.技能排列 = []
        self.排列图片 = []
        for i in range(6):
            temp = []
            temp2 = []
            for j in range(6):
                temp.append(MyQComboBox(self.main_frame2))
                temp[j].resize(100, 22)
                temp[j].addItems(技能名称)
                temp[j].currentIndexChanged.connect(
                    lambda state, x=i, y=j: self.排列图片更改(x, y))
                if i == 0:
                    temp[j].move(310 + 110 * j, 440 + 28 * i)
                else:
                    temp[j].move(310 + 110 * j, 450 + 28 * i)
                temp2.append(QLabel(self.main_frame2))
                temp2[j].resize(26, 26)
                temp2[j].setAlignment(Qt.AlignCenter)
                if i == 0:
                    temp2[j].move(初始x + 10 + 39 * j, 初始y + 24 + 44 * i)
                else:
                    temp2[j].move(初始x + 10 + 39 * j, 初始y + 39 + 44 * i)
            self.技能排列.append(temp)
            self.排列图片.append(temp2)

        self.清空排列按钮 = QPushButton('清空排列', self.main_frame2)
        self.清空排列按钮.clicked.connect(lambda state: self.清空排列())
        self.清空排列按钮.move(850, 400)
        self.清空排列按钮.resize(100, 20)
        self.清空排列按钮.setStyleSheet(按钮样式)

        self.护甲精通选择 = MyQComboBox(self.main_frame2)
        self.护甲精通选择.addItem('轻甲')
        self.护甲精通选择.addItem('布甲')
        self.护甲精通选择.addItem('重甲')
        self.护甲精通选择.addItem('板甲')
        self.护甲精通选择.resize(120, 20)
        self.护甲精通选择.move(720, 400)

        self.职业存档.append(('护甲精通选择', self.护甲精通选择, 1))
        for i in range(6):
            for j in range(6):
                self.职业存档.append(('技能-{}-{}'.format(i, j), self.技能排列[i][j], 1))

    def 清空排列(self):

        box = QMessageBox(QMessageBox.Warning, "提示", "是否清空排列？")
        box.setWindowIcon(self.icon)
        yes = box.addButton(self.tr("确定"), QMessageBox.YesRole)
        no = box.addButton(self.tr("取消"), QMessageBox.NoRole)
        box.exec_()
        if box.clickedButton() == yes:
            for i in self.技能排列:
                for j in i:
                    j.setCurrentIndex(0)

    def 排列图片更改(self, x, y):
        技能字典 = {}
        for i in self.技能排列:
            for j in i:
                if j.currentText() != '无':
                    技能字典[j.currentText()] = 技能字典.get(j.currentText(), 0) + 1

        if self.技能排列[x][y].currentText() != '无':
            self.排列图片[x][y].setPixmap(
                self.技能图片[self.角色属性A.技能序号[self.技能排列[x][y].currentText()]])
            if 技能字典[self.技能排列[x][y].currentText()] > 1:
                self.技能排列[x][y].setStyleSheet(下拉框样式_warn)
            else:
                self.技能排列[x][y].setStyleSheet(下拉框样式)
        else:
            self.排列图片[x][y].setPixmap(QPixmap('无'))
            self.技能排列[x][y].setStyleSheet(下拉框样式)

    def 输入属性(self, 属性, x=0):
        super().输入属性(属性, x)

        排列倍率 = [2, 1, 1.3, 1.5, 1.8, 2]

        for i in range(6):
            for j in range(6):
                if self.技能排列[i][j].currentText() != '无':
                    属性.技能栏[属性.技能序号[self.技能排列[i][j].currentText()]].倍率 *= 排列倍率[i]

        排列技能 = []
        for j in range(6):
            temp = []
            for i in range(1, 6):
                temp.append(self.技能排列[i][j].currentText())
            排列技能.append(temp)

        属性.排列技能 = deepcopy(排列技能)

        for i in 属性.技能栏:
            if i.是否主动 == 1:
            # if i.是否主动 == 1 and i.所在等级 >= 40 and i.名称 != '禁魂斩':
                if 属性.类型 == '物理百分比':
                    i.类型 = '物理'
                else:
                    i.类型 = '魔法'

        #防具类型 = '轻甲'

        属性.护甲精通 = self.护甲精通选择.currentIndex()
        if 属性.护甲精通 == 0:
            属性.防具类型 = '轻甲'
            属性.防具精通属性 = ['力量']
        elif 属性.护甲精通 == 1:
            属性.防具类型 = '布甲'
            属性.防具精通属性 = ['智力']
        elif 属性.护甲精通 == 2:
            属性.防具类型 = '重甲'
            属性.防具精通属性 = ['力量']
        elif 属性.护甲精通 == 3:
            属性.防具类型 = '板甲'
            属性.防具精通属性 = ['智力']
